home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- from _winreg import *
- import os
- import sys
- from test.test_support import verify, have_unicode
- test_key_name = 'SOFTWARE\\Python Registry Test Key - Delete Me'
- test_data = [
- ('Int Value', 45, REG_DWORD),
- ('String Val', 'A string value', REG_SZ),
- ('StringExpand', 'The path is %path%', REG_EXPAND_SZ),
- ('Multi-string', [
- 'Lots',
- 'of',
- 'string',
- 'values'], REG_MULTI_SZ),
- ('Raw Data', 'binary' + chr(0) + 'data', REG_BINARY),
- ('Big String', 'x' * (2 ** 14 - 1), REG_SZ),
- ('Big Binary', 'x' * 2 ** 14, REG_BINARY)]
- if have_unicode:
- test_data += [
- (unicode('Unicode Val'), unicode('A Unicode value'), REG_SZ),
- ('UnicodeExpand', unicode('The path is %path%'), REG_EXPAND_SZ),
- ('Multi-unicode', [
- unicode('Lots'),
- unicode('of'),
- unicode('unicode'),
- unicode('values')], REG_MULTI_SZ),
- ('Multi-mixed', [
- unicode('Unicode'),
- unicode('and'),
- 'string',
- 'values'], REG_MULTI_SZ)]
-
-
- def WriteTestData(root_key):
- SetValue(root_key, test_key_name, REG_SZ, 'Default value')
- key = CreateKey(root_key, test_key_name)
- sub_key = CreateKey(key, 'sub_key')
- for value_name, value_data, value_type in test_data:
- SetValueEx(sub_key, value_name, 0, value_type, value_data)
-
- (nkeys, nvalues, since_mod) = QueryInfoKey(key)
- verify(nkeys == 1, 'Not the correct number of sub keys')
- verify(nvalues == 1, 'Not the correct number of values')
- (nkeys, nvalues, since_mod) = QueryInfoKey(sub_key)
- verify(nkeys == 0, 'Not the correct number of sub keys')
- verify(nvalues == len(test_data), 'Not the correct number of values')
- int_sub_key = int(sub_key)
- CloseKey(sub_key)
-
- try:
- QueryInfoKey(int_sub_key)
- raise RuntimeError, 'It appears the CloseKey() function does not close the actual key!'
- except EnvironmentError:
- pass
-
- int_key = int(key)
- key.Close()
-
- try:
- QueryInfoKey(int_key)
- raise RuntimeError, 'It appears the key.Close() function does not close the actual key!'
- except EnvironmentError:
- pass
-
-
-
- def ReadTestData(root_key):
- val = QueryValue(root_key, test_key_name)
- verify(val == 'Default value', "Registry didn't give back the correct value")
- key = OpenKey(root_key, test_key_name)
- sub_key = OpenKey(key, 'sub_key')
- index = 0
- while None:
-
- try:
- data = EnumValue(sub_key, index)
- except EnvironmentError:
- break
-
- index = index + 1
- verify(index == len(test_data), "Didn't read the correct number of items")
- for value_name, value_data, value_type in test_data:
- (read_val, read_typ) = QueryValueEx(sub_key, value_name)
- if read_val == value_data:
- pass
- verify(read_typ == value_type, 'Could not directly read the value')
-
- sub_key.Close()
- read_val = EnumKey(key, 0)
- verify(read_val == 'sub_key', 'Read subkey value wrong')
-
- try:
- EnumKey(key, 1)
- verify(0, 'Was able to get a second key when I only have one!')
- except EnvironmentError:
- pass
-
- key.Close()
-
-
- def DeleteTestData(root_key):
- key = OpenKey(root_key, test_key_name, 0, KEY_ALL_ACCESS)
- sub_key = OpenKey(key, 'sub_key', 0, KEY_ALL_ACCESS)
- for value_name, value_data, value_type in test_data:
- DeleteValue(sub_key, value_name)
-
- (nkeys, nvalues, since_mod) = QueryInfoKey(sub_key)
- if nkeys == 0:
- pass
- verify(nvalues == 0, 'subkey not empty before delete')
- sub_key.Close()
- DeleteKey(key, 'sub_key')
-
- try:
- DeleteKey(key, 'sub_key')
- verify(0, 'Deleting the key twice succeeded')
- except EnvironmentError:
- pass
-
- key.Close()
- DeleteKey(root_key, test_key_name)
-
- try:
- key = OpenKey(root_key, test_key_name)
- verify(0, 'Could open the non-existent key')
- except WindowsError:
- pass
-
-
-
- def TestAll(root_key):
- WriteTestData(root_key)
- ReadTestData(root_key)
- DeleteTestData(root_key)
-
- TestAll(HKEY_CURRENT_USER)
- print 'Local registry tests worked'
-
- try:
- remote_name = sys.argv[sys.argv.index('--remote') + 1]
- except (IndexError, ValueError):
- remote_name = None
-
- if remote_name is not None:
-
- try:
- remote_key = ConnectRegistry(remote_name, HKEY_CURRENT_USER)
- except EnvironmentError:
- exc = None
- print 'Could not connect to the remote machine -', exc.strerror
- remote_key = None
-
- if remote_key is not None:
- TestAll(remote_key)
- print 'Remote registry tests worked'
-
- else:
- print 'Remote registry calls can be tested using', "'test_winreg.py --remote \\\\machine_name'"
-